Intermediate network nodes are arranged between two endpoints and handle traffic (at least) on a transport layer. Such intermediate network nodes, for example relay nodes, are expected to be adopted to perform traversing of traffic over incoming and outgoing connections of protocols in which there are several data streams exchanging sequenced messages within a connection (also referred to as an association), such as Stream Control Transmission Protocol (SCTP). Examples of relay nodes that will likely become adopted or have been adopted include Message Transfer Part Level 3 User Adaption Layer (M3UA) relays, Session Initiation Protocol (SIP) proxies, H.323, or Diameter proxies.
The M3UA protocol is a protocol defined by the SIGTRAN working group in IETF. M3UA supports the transport of any SS7 MTP-3 User Signalling (e.g., ISDN User Part (ISUP) and Signalling Connection Control Part (SCCP) messages) over IP using the services of SCTP. In addition, provision is made for protocol elements that enable a seamless operation of the MTP3-User peers in the SS7 and IP domains. This protocol would likely be used between a Signalling Gateway (SG), on one hand, and a Media Gateway Controller (MGC) or IP-resident Database, on the other hand, or between two IP-based applications. For purposes herein, it is assumed that the SG receives SS7 signalling over a standard SS7 interface using the SS7 Message Transfer Part (MTP) to provide transport.
It is likely that new intermediate network nodes will be adopted pursuant to M3UA which are referred to herein as M3UA relays. An M3UA relay takes the role of an intermediate node, forwarding packets based on the address information transported in the M3UA layer. This address information is, in the simplest case, the signalling point code (SPC) of the destination. Therefore, an M3UA relay resembles most of the functionality associated with an MTP3 intermediate node (also referred to as a signalling transfer point (STP)).
The following describes the operation of the proposed M3UA relays as provided in the Requests for Comments (RFCs) describing SCTP and M3UA as well as other SIGTRAN related specifications.
With reference to FIG. 1, an architecture diagram 100 that may be used in connection with the current invention is illustrated. The diagram 100 shows an M3UA network that utilizes M3UA relays with a typical STP-like topology having redundancy for intermediate nodes and the links between the nodes in order to avoid a single point of failure.
In the diagram 100, there are four M3UA relay nodes 105, 110, 115, 120 that represent the interconnecting core in a M3UA network and nine endpoints (EPs) (e.g., signalling end points, SEPs) 125-165, each with a different signalling point code (SPC). SCTP associations that carry the M3UA packets interconnect the M3UA relay nodes 105, 110, 115, 120. The topology of the M3UA relay sub-network is that of a clique graph in which each M3UA relay node is connected to any other M3UA relay node in the network by an SCTP association, as represented by a thick line indicating a higher traffic level, because those SCTP associations aggregate the traffic of all of the end systems.
The signalling endpoints 125-165 are typically each connected to two M3UA relays 105, 110, 115, 120 for redundancy purposes. As those associations only carry traffic to and from that particular SEP, thin lines indicate the lower traffic volume on those associations.
SCTP, as well as other similar protocols which perform packet sorting, support sequenced delivery of user messages within multiple streams, with an option to disable this feature in exchange for order-of-arrival delivery (unordered delivery) of individual user messages. SCTP uses streams for sequenced delivery. An association can support several inbound and outbound streams. Each stream has a stream number that is indicated in the SCTP packet. Each packet belonging to a stream gets a sequence number that is valid in the context of the stream. The sequence number is consecutively allocated in the order the packets are sent on that stream. Sorting of packets is done at the receiving end for each stream according to the sequence number prior to delivering the packet to the SCTP user. Packet loss in any one stream does not affect data delivery within other streams (i.e., head-of-line blocking is avoided between streams).
If M3UA relays are to be adopted in connection with a data transport protocol such as SCTP, then there may be several sub-optimal performance characteristics. An M3UA relay node would likely include several SCTP associations that interconnect the M3UA relay nodes among each other and connect to M3UA SEPs with a single SCTP association being used between each pair of M3UA relay nodes. The SCTP associations work in the default mode in which packet order is preserved (ordered delivery) because M3UA users rely on ordered delivery of messages. Therefore, the SCTP instances at the M3UA relay nodes necessarily decompose incoming packets by queuing and sorting them and later aggregating the packets so that M3UA users receive is the packets in the same order as originally sent by the source.
In FIG. 2, a relay node 200 is illustrated that may be used in connection with the current invention. The relay node includes an SCTP instance 220 that receives packets from an IP layer 210. The SCTP instance 220 receives the incoming packets and sorts them before providing them to an M3UA unit 230, which subsequently returns the sorted packets to the SCTP instance 220 for ultimate delivery via the IP layer 210. However, as the relay node 200 is merely relaying the ordered packets back to another network node, there is no need for the SCTP instance 220 to sort the packets, and thus unnecessary processing capabilities are consumed—which impairs the overall network latency and maximum throughput (i.e., congestion occurs more often).
Moreover, packet traffic from SCTP associations connecting SEPs to M3UA relays will have to be treated in a certain manner rather than just as signalling links in a traditional signalling network. In addition, although and M3UA relay nodes will likely use policies similar to MTP networks in which only one packet path is used at a time, problems may exist with receiving packets from multiple paths, such as link failure, node failure, or the like, which may result in packets on the fly on the previous path simultaneously when new packets are using a new path.
It will be appreciated that there remains a need for an intermediate network node that relays data packets in an efficient and rapid manner.